package com.atguigu.designPattern03.day08bridge;

/**
 * 桥接模式(Bridge)：
 *      基本介绍：
 *          1) 桥接模式（Bridge模式）是指：将实现与抽象放在两个不同的类层次中，使两个层次可以独立改变。
 *          2) 是一种结构型设计模式
 *          3) Bridge模式基于类的最小设计原则，通过使用封装、聚合及继承等行为让不同的类承担不同的职责。
 *              它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来，从而可以保持各部分的独立性以及应对他们的功能扩展
 *
 *      桥接模式的角色及职责：
 *          1）Client 类：桥接模式的调用者
 *          2）抽象类(Abstraction)：维护了 Implementor/即它的实现类 ConcreteImplementorA/B, 二者是聚合关系, Abstraction充当桥接
 *          3）RefinedAbstraction：是 Abstraction 抽象类的子类
 *          4）Implementor：行为实现类的接口
 *          5）ConcreteImplementorA /B：行为的具体实现类
 *          6）从 UML 图：这里的抽象类和接口是聚合的关系，其实也是调用和被调用关系
 *
 *      注意事项和细节：
 *          1) 实现了抽象和实现部分的分离，从而极大的提高了系统的灵活性，让抽象部分和实现部分独立开来，
 *              这有助于系统进行分层设计，从而产生更好的结构化系统。
 *          2) 对于系统的高层部分，只需要知道抽象部分和实现部分的接口就可以了，其它的部分由具体业务来完成。
 *          3) 桥接模式替代多层继承方案，可以减少子类的个数，降低系统的管理和维护成本。
 *          4) 桥接模式的引入增加了系统的理解和设计难度，由于聚合关联关系建立在抽象层，要求开发者针对抽象进行设计和编程
 *          5) 桥接模式要求正确识别出系统中两个独立变化的维度，因此其使用范围有一定的局限性，即需要有这样的应用场景。
 *
 *      桥接模式其它应用场景：
 *          1) 对于那些不希望使用继承或因为多层次继承导致系统类的个数急剧增加的系统，桥接模式尤为适用。
 *          2) 常见的应用场景:
 *              - JDBC驱动程序
 *              - 银行转账系统
 *                  转账分类：网上转账，柜台转账，AMT转账
 *                  转账用户类型：普通用户，银卡用户，金卡用户...
 *              - 消息管理
 *                  消息类型：即时消息，延时消息
 *                  消息分类：手机短信，邮件消息，QQ消息...
 * Create by koala on 2021-06-06
 */
public class Introduce {
}
